package com.bjsxt.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bjsxt.domain.UserBank;
import com.bjsxt.dto.UserBankDto;
import com.bjsxt.dto.UserBankFeignDto;

import java.util.List;

public interface UserBankService extends IService<UserBank> {
    /**
     * 根据用户 id 分页查询银行卡数据
     *
     * @param page   分页对象<UserBank>
     * @param userId 用户 id
     * @return 银行卡分页数据
     */
    Page<UserBank> pageByUserId(Page<UserBank> page, Long userId);

    /**
     * 根据用户 id 查询这个用户下具有的银行卡数据
     *
     * @param userId 用户 id
     * @return 持有的银行卡数据列表
     */
    List<UserBank> listByUserId(Long userId);

    /**
     * 给用户绑定一张银行卡数据，如果该银行卡不存在，那么这张银行卡会进行添加操作
     *
     * @param userId      需要给那个用户绑定银行卡的 ID
     * @param userBankDto 需要绑定银行卡的参数对象
     * @return ture: 绑定成功 false: 绑定失败
     */
    boolean bindBank(Long userId, UserBankDto userBankDto);

    /**
     * 根据 userId 获取银行卡数据
     *
     * @param userId 用户 id
     * @return 银行卡数据
     */
    UserBankFeignDto getByUserId(Long userId);
}
